<?php
declare (strict_types=1);

namespace app\command;

use schedule\Command;
use think\facade\Console;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;

class Schedule extends Command
{
    protected function configure()
    {
        // 指令配置
        $this->setName('schedule:run')
            ->setDescription('the schedule:run command');
    }

    protected function execute(Input $input, Output $output)
    {
        try {
            // 指令输出
            $output->writeln('schedule:run ' . date('Y-m-d H:i:s'));
            // 每2分钟执行
//            $this->command('task:test')->cron('*/2 * * * *');
            // 每分钟执行 检测采集网关是否离线
//            $this->command('task:checkCollectingGatewayOffline')->cron('*/1 * * * *');
            // 每分钟执行 检测设备是否离线
            $this->command('task:checkDeviceOffline')->cron('*/1 * * * *');
            // 每分钟执行 检测采集设备变量是否离线
            $this->command('task:checkCollectingDeviceVarOffline')->cron('*/1 * * * *');
            // 每分钟执行
//            $this->command('')->cron('*/30 * * * *');
            $output->writeln('schedule:run 执行成功' . date('Y-m-d H:i:s'));
            parent::execute($input, $output);
        } catch (\Exception $e) {
            exception_log('计划任务执行失败', $e);
            // 指令输出
            $output->writeln('schedule:run 执行失败' . date('Y-m-d H:i:s'));
        }
    }
}
